package br.com.tautologia.mc.parcelamento.dao.entidades;

import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Index;
import org.hibernate.envers.Audited;

@Audited
@Entity
@Table(name = "PESSOA")
public class Pessoa extends ObjetoPersistente {

	private static final long serialVersionUID = 1L;

	private String nome;
	private String cpf;
	private Set<Endereco> enderecos;

	public Pessoa() {
	}

	public Pessoa(String nome, String cpf) {
		this.nome = nome;
		this.cpf = cpf;
	}

	@Column(name = "NOME", nullable = false, length = 150)
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Column(name = "CPF", nullable = false, length = 11, columnDefinition = "char(11)", unique = true)
	@Index(name = "INDEX_CPF")
	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}

	@OneToMany(targetEntity = Endereco.class, fetch = FetchType.LAZY, cascade = CascadeType.REMOVE)
	public Set<Endereco> getEnderecos() {
		return enderecos;
	}

	public void setEnderecos(Set<Endereco> enderecos) {
		this.enderecos = enderecos;
	}

}